home *** CD-ROM | disk | FTP | other *** search
/ Revista CD Expert 8 / Revista CD Expert nº 08 CD1.iso / Utilitarios / Programacao / Pacific C for DOS / INCLUDE / STDIO.H < prev    next >
C/C++ Source or Header  |  1995-03-08  |  5KB  |  167 lines

  1. #if    z80
  2. #define    BUFSIZ        512
  3. #define    _NFILE        8
  4. #else    z80
  5. #define    BUFSIZ        1024
  6. #define    _NFILE        20
  7. #endif    z80
  8.  
  9. #ifndef    _STDDEF
  10. typedef    int        ptrdiff_t;    /* result type of pointer difference */
  11. typedef    unsigned    size_t;        /* type yielded by sizeof */
  12. typedef unsigned short    wchar_t;    /* wide char type */
  13. #define    _STDDEF
  14. #define    offsetof(ty, mem)    ((int)&(((ty *)0)->mem))
  15. #endif    _STDDEF
  16.  
  17. #ifndef    _STDARG
  18. #include    <stdarg.h>
  19. #endif
  20.  
  21. #ifndef    NULL
  22. #define    NULL    ((void *)0)
  23. #endif    NULL
  24.  
  25. extern int    errno;            /* system error number */
  26.  
  27. #ifndef FILE
  28. #define    uchar    unsigned char
  29.  
  30. #if    _HOSTED
  31. extern    struct    _iobuf {
  32.     char *        _ptr;
  33.     int        _cnt;
  34.     char *        _base;
  35.     unsigned short    _flag;
  36.     short        _file;
  37.     size_t        _size;
  38. } _iob[_NFILE];
  39.  
  40. #define    FILE        struct _iobuf
  41.  
  42. #define    L_tmpnam    80        /* max length of temporary names */
  43. #define    _MAXTFILE    8        /* max number of temporary files */
  44.  
  45. extern struct _tfiles {
  46.     char    tname[L_tmpnam];
  47.     FILE *    tfp;
  48. }    * _tfilesptr;
  49.  
  50. #else    /* _HOSTED */
  51.  
  52. struct __prbuf
  53. {
  54.     char *        ptr;
  55.     void (*        func)(char);
  56. };
  57. #endif    /* _HOSTED */
  58. #endif    FILE
  59.  
  60. #define    _IOFBF        0
  61. #define    _IOREAD        01
  62. #define    _IOWRT        02
  63. #define    _IORW        03
  64. #define    _IONBF        04
  65. #define    _IOMYBUF    010
  66. #define    _IOEOF        020
  67. #define    _IOERR        040
  68. #define    _IOSTRG        0100
  69. #define    _IOBINARY    0200
  70. #define    _IOLBF        0400
  71. #define    _IODIRN        01000    /* true when file is in write mode */
  72. #define    _IOAPPEND    02000    /* file was opened in append mode */
  73. #define    _IOSEEKED    04000    /* a seek has occured since last write */
  74. #define    _IOTMPFILE    010000    /* this file is a temporary */
  75.  
  76. #define    EOF        (-1)
  77. #define    _IOSTRING    (-67)
  78.  
  79. #define    stdin        (&_iob[0])
  80. #define    stdout        (&_iob[1])
  81. #define    stderr        (&_iob[2])
  82. #if    _HOSTED
  83. #define    getchar()    getc(stdin)
  84. #define    putchar(x)    putc(x,stdout)
  85. #else    /* _HOSTED */
  86. #include    <conio.h>
  87. #define    getchar()    getche()
  88. #define    putchar(x)    putch(x)
  89. extern int    cprintf(char *, ...);
  90. #pragma printf_check(cprintf)
  91. extern int    _doprnt(struct __prbuf *, const register char *, register va_list);
  92. #endif    /* _HOSTED */
  93.  
  94. /*    getc() and putc() must be functions for CP/M to allow the special
  95.  *    handling of '\r', '\n' and '\032'. The same for MSDOS except that
  96.  *    it at least knows the length of a file.
  97.  */
  98.  
  99. #define    getc(p)        fgetc(p)
  100. #define    putc(x,p)    fputc(x,p)
  101.  
  102. #define    feof(p)        (((p)->_flag&_IOEOF)!=0)
  103. #define    ferror(p)    (((p)->_flag&_IOERR)!=0)
  104. #define    fileno(p)    ((unsigned short)p->_file)
  105. #define    clrerr(p)    p->_flag &= ~_IOERR
  106. #define    clreof(p)    p->_flag &= ~_IOEOF
  107. #define    clearerr(p)    p->_flag &= ~(_IOERR|_IOEOF)
  108.  
  109.  
  110. #if    _HOSTED
  111. extern int    _flsbuf(char, FILE *);
  112. extern int    _filbuf(FILE *);
  113. extern int    fclose(FILE *);
  114. extern int    fflush(FILE *);
  115. extern int    fgetc(FILE *);
  116. extern int    ungetc(int, FILE *);
  117. extern int    fputc(int, FILE *);
  118. extern int    getw(FILE *);
  119. extern int    putw(int, FILE *);
  120. extern int    fputs(const char *, FILE *);
  121. extern int    fread(void *, size_t, size_t, FILE *);
  122. extern int    fwrite(const void *, size_t, size_t, FILE *);
  123. extern int    fseek(FILE *, long, int);
  124. extern int    rewind(FILE *);
  125. extern void    setbuf(FILE *, char *);
  126. extern int    setvbuf(FILE *, char *, int, size_t);
  127. extern int    fprintf(FILE *, const char *, ...);
  128. extern int    fscanf(FILE *, const char *, ...);
  129. extern int    vfprintf(FILE *, const char *, va_list);
  130. extern int    vfscanf(FILE *, const char *, va_list);
  131. extern int    remove(const char *);
  132. extern int    rename(const char *, const char *);
  133. extern FILE *    fopen(const char *, const char *);
  134. extern FILE *    freopen(const char *, const char *, FILE *);
  135. extern FILE *    fdopen(int, const char *);
  136. extern long    ftell(FILE *);
  137. extern char *    fgets(char *, int, FILE *);
  138. extern void    perror(const char *);
  139. extern char *    _bufallo(void);
  140. extern void    _buffree(char *);
  141. extern char *    tmpnam(char *);
  142. extern FILE *    tmpfile(void);
  143.  
  144. #if    unix
  145. extern FILE *    popen(char *, char *);
  146. extern int    pclose(FILE *);
  147. #endif
  148. extern void    (*_atexitptr)(void);
  149.  
  150. #pragma    printf_check(fprintf)
  151.  
  152. #endif    /* __HOSTED */
  153.  
  154. extern char *    gets(char *);
  155. extern int    puts(const char *);
  156. extern int    printf(const char *, ...);
  157. extern int    sprintf(char *, const char *, ...);
  158. extern int    scanf(const char *, ...);
  159. extern int    sscanf(const char *, const char *, ...);
  160. extern int    vprintf(const char *, va_list);
  161. extern int    vsprintf(char *, const char *, va_list);
  162. extern int    vscanf(const char *, va_list ap);
  163. extern int    vsscanf(const char *, const char *, va_list);
  164.  
  165. #pragma    printf_check(sprintf)
  166. #pragma    printf_check(printf)
  167.